﻿using System;
using UnityEngine;
using UnityEngine.EventSystems;

namespace UniRx.Triggers
{
	// Token: 0x02000432 RID: 1074
	[DisallowMultipleComponent]
	public class ObservableEventTrigger : ObservableTriggerBase, IEventSystemHandler, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IBeginDragHandler, IInitializePotentialDragHandler, IDragHandler, IEndDragHandler, IDropHandler, IScrollHandler, IUpdateSelectedHandler, ISelectHandler, IDeselectHandler, IMoveHandler, ISubmitHandler, ICancelHandler
	{
		// Token: 0x0600166D RID: 5741 RVA: 0x000618D4 File Offset: 0x0005FCD4
		void IDeselectHandler.OnDeselect(BaseEventData eventData)
		{
			if (this.onDeselect != null)
			{
				this.onDeselect.OnNext(eventData);
			}
		}

		// Token: 0x0600166E RID: 5742 RVA: 0x000618F0 File Offset: 0x0005FCF0
		public IObservable<BaseEventData> OnDeselectAsObservable()
		{
			Subject<BaseEventData> result;
			if ((result = this.onDeselect) == null)
			{
				result = (this.onDeselect = new Subject<BaseEventData>());
			}
			return result;
		}

		// Token: 0x0600166F RID: 5743 RVA: 0x00061918 File Offset: 0x0005FD18
		void IMoveHandler.OnMove(AxisEventData eventData)
		{
			if (this.onMove != null)
			{
				this.onMove.OnNext(eventData);
			}
		}

		// Token: 0x06001670 RID: 5744 RVA: 0x00061934 File Offset: 0x0005FD34
		public IObservable<AxisEventData> OnMoveAsObservable()
		{
			Subject<AxisEventData> result;
			if ((result = this.onMove) == null)
			{
				result = (this.onMove = new Subject<AxisEventData>());
			}
			return result;
		}

		// Token: 0x06001671 RID: 5745 RVA: 0x0006195C File Offset: 0x0005FD5C
		void IPointerDownHandler.OnPointerDown(PointerEventData eventData)
		{
			if (this.onPointerDown != null)
			{
				this.onPointerDown.OnNext(eventData);
			}
		}

		// Token: 0x06001672 RID: 5746 RVA: 0x00061978 File Offset: 0x0005FD78
		public IObservable<PointerEventData> OnPointerDownAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onPointerDown) == null)
			{
				result = (this.onPointerDown = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x06001673 RID: 5747 RVA: 0x000619A0 File Offset: 0x0005FDA0
		void IPointerEnterHandler.OnPointerEnter(PointerEventData eventData)
		{
			if (this.onPointerEnter != null)
			{
				this.onPointerEnter.OnNext(eventData);
			}
		}

		// Token: 0x06001674 RID: 5748 RVA: 0x000619BC File Offset: 0x0005FDBC
		public IObservable<PointerEventData> OnPointerEnterAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onPointerEnter) == null)
			{
				result = (this.onPointerEnter = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x06001675 RID: 5749 RVA: 0x000619E4 File Offset: 0x0005FDE4
		void IPointerExitHandler.OnPointerExit(PointerEventData eventData)
		{
			if (this.onPointerExit != null)
			{
				this.onPointerExit.OnNext(eventData);
			}
		}

		// Token: 0x06001676 RID: 5750 RVA: 0x00061A00 File Offset: 0x0005FE00
		public IObservable<PointerEventData> OnPointerExitAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onPointerExit) == null)
			{
				result = (this.onPointerExit = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x06001677 RID: 5751 RVA: 0x00061A28 File Offset: 0x0005FE28
		void IPointerUpHandler.OnPointerUp(PointerEventData eventData)
		{
			if (this.onPointerUp != null)
			{
				this.onPointerUp.OnNext(eventData);
			}
		}

		// Token: 0x06001678 RID: 5752 RVA: 0x00061A44 File Offset: 0x0005FE44
		public IObservable<PointerEventData> OnPointerUpAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onPointerUp) == null)
			{
				result = (this.onPointerUp = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x06001679 RID: 5753 RVA: 0x00061A6C File Offset: 0x0005FE6C
		void ISelectHandler.OnSelect(BaseEventData eventData)
		{
			if (this.onSelect != null)
			{
				this.onSelect.OnNext(eventData);
			}
		}

		// Token: 0x0600167A RID: 5754 RVA: 0x00061A88 File Offset: 0x0005FE88
		public IObservable<BaseEventData> OnSelectAsObservable()
		{
			Subject<BaseEventData> result;
			if ((result = this.onSelect) == null)
			{
				result = (this.onSelect = new Subject<BaseEventData>());
			}
			return result;
		}

		// Token: 0x0600167B RID: 5755 RVA: 0x00061AB0 File Offset: 0x0005FEB0
		void IPointerClickHandler.OnPointerClick(PointerEventData eventData)
		{
			if (this.onPointerClick != null)
			{
				this.onPointerClick.OnNext(eventData);
			}
		}

		// Token: 0x0600167C RID: 5756 RVA: 0x00061ACC File Offset: 0x0005FECC
		public IObservable<PointerEventData> OnPointerClickAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onPointerClick) == null)
			{
				result = (this.onPointerClick = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x0600167D RID: 5757 RVA: 0x00061AF4 File Offset: 0x0005FEF4
		void ISubmitHandler.OnSubmit(BaseEventData eventData)
		{
			if (this.onSubmit != null)
			{
				this.onSubmit.OnNext(eventData);
			}
		}

		// Token: 0x0600167E RID: 5758 RVA: 0x00061B10 File Offset: 0x0005FF10
		public IObservable<BaseEventData> OnSubmitAsObservable()
		{
			Subject<BaseEventData> result;
			if ((result = this.onSubmit) == null)
			{
				result = (this.onSubmit = new Subject<BaseEventData>());
			}
			return result;
		}

		// Token: 0x0600167F RID: 5759 RVA: 0x00061B38 File Offset: 0x0005FF38
		void IDragHandler.OnDrag(PointerEventData eventData)
		{
			if (this.onDrag != null)
			{
				this.onDrag.OnNext(eventData);
			}
		}

		// Token: 0x06001680 RID: 5760 RVA: 0x00061B54 File Offset: 0x0005FF54
		public IObservable<PointerEventData> OnDragAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onDrag) == null)
			{
				result = (this.onDrag = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x06001681 RID: 5761 RVA: 0x00061B7C File Offset: 0x0005FF7C
		void IBeginDragHandler.OnBeginDrag(PointerEventData eventData)
		{
			if (this.onBeginDrag != null)
			{
				this.onBeginDrag.OnNext(eventData);
			}
		}

		// Token: 0x06001682 RID: 5762 RVA: 0x00061B98 File Offset: 0x0005FF98
		public IObservable<PointerEventData> OnBeginDragAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onBeginDrag) == null)
			{
				result = (this.onBeginDrag = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x06001683 RID: 5763 RVA: 0x00061BC0 File Offset: 0x0005FFC0
		void IEndDragHandler.OnEndDrag(PointerEventData eventData)
		{
			if (this.onEndDrag != null)
			{
				this.onEndDrag.OnNext(eventData);
			}
		}

		// Token: 0x06001684 RID: 5764 RVA: 0x00061BDC File Offset: 0x0005FFDC
		public IObservable<PointerEventData> OnEndDragAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onEndDrag) == null)
			{
				result = (this.onEndDrag = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x06001685 RID: 5765 RVA: 0x00061C04 File Offset: 0x00060004
		void IDropHandler.OnDrop(PointerEventData eventData)
		{
			if (this.onDrop != null)
			{
				this.onDrop.OnNext(eventData);
			}
		}

		// Token: 0x06001686 RID: 5766 RVA: 0x00061C20 File Offset: 0x00060020
		public IObservable<PointerEventData> OnDropAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onDrop) == null)
			{
				result = (this.onDrop = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x06001687 RID: 5767 RVA: 0x00061C48 File Offset: 0x00060048
		void IUpdateSelectedHandler.OnUpdateSelected(BaseEventData eventData)
		{
			if (this.onUpdateSelected != null)
			{
				this.onUpdateSelected.OnNext(eventData);
			}
		}

		// Token: 0x06001688 RID: 5768 RVA: 0x00061C64 File Offset: 0x00060064
		public IObservable<BaseEventData> OnUpdateSelectedAsObservable()
		{
			Subject<BaseEventData> result;
			if ((result = this.onUpdateSelected) == null)
			{
				result = (this.onUpdateSelected = new Subject<BaseEventData>());
			}
			return result;
		}

		// Token: 0x06001689 RID: 5769 RVA: 0x00061C8C File Offset: 0x0006008C
		void IInitializePotentialDragHandler.OnInitializePotentialDrag(PointerEventData eventData)
		{
			if (this.onInitializePotentialDrag != null)
			{
				this.onInitializePotentialDrag.OnNext(eventData);
			}
		}

		// Token: 0x0600168A RID: 5770 RVA: 0x00061CA8 File Offset: 0x000600A8
		public IObservable<PointerEventData> OnInitializePotentialDragAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onInitializePotentialDrag) == null)
			{
				result = (this.onInitializePotentialDrag = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x0600168B RID: 5771 RVA: 0x00061CD0 File Offset: 0x000600D0
		void ICancelHandler.OnCancel(BaseEventData eventData)
		{
			if (this.onCancel != null)
			{
				this.onCancel.OnNext(eventData);
			}
		}

		// Token: 0x0600168C RID: 5772 RVA: 0x00061CEC File Offset: 0x000600EC
		public IObservable<BaseEventData> OnCancelAsObservable()
		{
			Subject<BaseEventData> result;
			if ((result = this.onCancel) == null)
			{
				result = (this.onCancel = new Subject<BaseEventData>());
			}
			return result;
		}

		// Token: 0x0600168D RID: 5773 RVA: 0x00061D14 File Offset: 0x00060114
		void IScrollHandler.OnScroll(PointerEventData eventData)
		{
			if (this.onScroll != null)
			{
				this.onScroll.OnNext(eventData);
			}
		}

		// Token: 0x0600168E RID: 5774 RVA: 0x00061D30 File Offset: 0x00060130
		public IObservable<PointerEventData> OnScrollAsObservable()
		{
			Subject<PointerEventData> result;
			if ((result = this.onScroll) == null)
			{
				result = (this.onScroll = new Subject<PointerEventData>());
			}
			return result;
		}

		// Token: 0x0600168F RID: 5775 RVA: 0x00061D58 File Offset: 0x00060158
		protected override void RaiseOnCompletedOnDestroy()
		{
			if (this.onDeselect != null)
			{
				this.onDeselect.OnCompleted();
			}
			if (this.onMove != null)
			{
				this.onMove.OnCompleted();
			}
			if (this.onPointerDown != null)
			{
				this.onPointerDown.OnCompleted();
			}
			if (this.onPointerEnter != null)
			{
				this.onPointerEnter.OnCompleted();
			}
			if (this.onPointerExit != null)
			{
				this.onPointerExit.OnCompleted();
			}
			if (this.onPointerUp != null)
			{
				this.onPointerUp.OnCompleted();
			}
			if (this.onSelect != null)
			{
				this.onSelect.OnCompleted();
			}
			if (this.onPointerClick != null)
			{
				this.onPointerClick.OnCompleted();
			}
			if (this.onSubmit != null)
			{
				this.onSubmit.OnCompleted();
			}
			if (this.onDrag != null)
			{
				this.onDrag.OnCompleted();
			}
			if (this.onBeginDrag != null)
			{
				this.onBeginDrag.OnCompleted();
			}
			if (this.onEndDrag != null)
			{
				this.onEndDrag.OnCompleted();
			}
			if (this.onDrop != null)
			{
				this.onDrop.OnCompleted();
			}
			if (this.onUpdateSelected != null)
			{
				this.onUpdateSelected.OnCompleted();
			}
			if (this.onInitializePotentialDrag != null)
			{
				this.onInitializePotentialDrag.OnCompleted();
			}
			if (this.onCancel != null)
			{
				this.onCancel.OnCompleted();
			}
			if (this.onScroll != null)
			{
				this.onScroll.OnCompleted();
			}
		}

		// Token: 0x04000C9C RID: 3228
		private Subject<BaseEventData> onDeselect;

		// Token: 0x04000C9D RID: 3229
		private Subject<AxisEventData> onMove;

		// Token: 0x04000C9E RID: 3230
		private Subject<PointerEventData> onPointerDown;

		// Token: 0x04000C9F RID: 3231
		private Subject<PointerEventData> onPointerEnter;

		// Token: 0x04000CA0 RID: 3232
		private Subject<PointerEventData> onPointerExit;

		// Token: 0x04000CA1 RID: 3233
		private Subject<PointerEventData> onPointerUp;

		// Token: 0x04000CA2 RID: 3234
		private Subject<BaseEventData> onSelect;

		// Token: 0x04000CA3 RID: 3235
		private Subject<PointerEventData> onPointerClick;

		// Token: 0x04000CA4 RID: 3236
		private Subject<BaseEventData> onSubmit;

		// Token: 0x04000CA5 RID: 3237
		private Subject<PointerEventData> onDrag;

		// Token: 0x04000CA6 RID: 3238
		private Subject<PointerEventData> onBeginDrag;

		// Token: 0x04000CA7 RID: 3239
		private Subject<PointerEventData> onEndDrag;

		// Token: 0x04000CA8 RID: 3240
		private Subject<PointerEventData> onDrop;

		// Token: 0x04000CA9 RID: 3241
		private Subject<BaseEventData> onUpdateSelected;

		// Token: 0x04000CAA RID: 3242
		private Subject<PointerEventData> onInitializePotentialDrag;

		// Token: 0x04000CAB RID: 3243
		private Subject<BaseEventData> onCancel;

		// Token: 0x04000CAC RID: 3244
		private Subject<PointerEventData> onScroll;
	}
}
